<template>
    <el-container class="home layout-container-demo">
        <el-header style="text-align: right; font-size: 12px">
            <div class="toolbar">
                <el-dropdown class="drop-menu"  @command="handleCommand">
                    <template #default>
                        <span>
                            {{  authority.adminname}}
                            <el-icon style="margin-right: 8px; margin-top: 1px">
                                <Setting />
                            </el-icon>
                        </span>
                    </template>
                   
                    <template #dropdown>
                        <el-dropdown-menu>
                            <el-dropdown-item command="setting">设置</el-dropdown-item>
                            <el-dropdown-item command="exit">退出</el-dropdown-item>
                        </el-dropdown-menu>
                    </template>
                </el-dropdown>
               
            </div>
        </el-header>


        <el-container>
            <el-aside width="200px">
                <el-scrollbar>
                    <el-menu :default-openeds="['1', '3']">
                        <el-sub-menu index="1">
                            <template #title>
                                <el-icon>
                                    <message />
                                </el-icon>Navigator One
                            </template>
                            <el-menu-item-group>
                                <template #title>Group 1</template>
                                <el-menu-item index="1-1">Option 1</el-menu-item>
                                <el-menu-item index="1-2">Option 2</el-menu-item>
                            </el-menu-item-group>
                            <el-menu-item-group title="Group 2">
                                <el-menu-item index="1-3">Option 3</el-menu-item>
                            </el-menu-item-group>
                            <el-sub-menu index="1-4">
                                <template #title>Option4</template>
                                <el-menu-item index="1-4-1">Option 4-1</el-menu-item>
                            </el-sub-menu>
                        </el-sub-menu>
                        <el-sub-menu index="2">
                            <template #title>
                                <el-icon><icon-menu /></el-icon>Navigator Two
                            </template>
                            <el-menu-item-group>
                                <template #title>Group 1</template>
                                <el-menu-item index="2-1">Option 1</el-menu-item>
                                <el-menu-item index="2-2">Option 2</el-menu-item>
                            </el-menu-item-group>
                            <el-menu-item-group title="Group 2">
                                <el-menu-item index="2-3">Option 3</el-menu-item>
                            </el-menu-item-group>
                            <el-sub-menu index="2-4">
                                <template #title>Option 4</template>
                                <el-menu-item index="2-4-1">Option 4-1</el-menu-item>
                            </el-sub-menu>
                        </el-sub-menu>
                        <el-sub-menu index="3">
                            <template #title>
                                <el-icon>
                                    <setting />
                                </el-icon>Navigator Three
                            </template>
                            <el-menu-item-group>
                                <template #title>Group 1</template>
                                <el-menu-item index="3-1">Option 1</el-menu-item>
                                <el-menu-item index="3-2">Option 2</el-menu-item>
                            </el-menu-item-group>
                            <el-menu-item-group title="Group 2">
                                <el-menu-item index="3-3">Option 3</el-menu-item>
                            </el-menu-item-group>
                            <el-sub-menu index="3-4">
                                <template #title>Option 4</template>
                                <el-menu-item index="3-4-1">Option 4-1</el-menu-item>
                            </el-sub-menu>
                        </el-sub-menu>
                    </el-menu>
                </el-scrollbar>
            </el-aside>
            <el-main>
                <el-scrollbar>
                    主页内容
                </el-scrollbar>
            </el-main>
        </el-container>
    </el-container>
</template>

<script>
import { Menu as IconMenu, Message, Setting } from '@element-plus/icons-vue';

import {mapState,mapGetters,mapMutations,mapActions} from "vuex";


export default {
    name: "HomeView",
    computed:{
        ...mapState(["authority"]),
        ...mapState({
            adminname:(state) => state.authority.adminname
        }),
        ...mapGetters(["isLogin"])
    },
    methods:{
        ...mapMutations(["getAuthorityFromLocal"]),
        ...mapActions(["exitAndUpdateAuthority"]),
        handleCommand(commandVal){
            console.log(commandVal);
            switch(commandVal){
                case "setting":
                    console.log("跳转设置页");
                    break;
                case "exit":
                    /* 
                        退出登录
                        1. vuex authority对象=>重置为默认值
                        2. localStorage清空(authority对象)
                        3. 返回登录页
                    */
                    this.exitAndUpdateAuthority()
                    this.$router.push("/login");  
                    break;
            }
        }
    },
    created(){
        this.getAuthorityFromLocal();  // 数据持久化 => 将本地数据同步vuex
    },
    mounted(){
        console.log("主页挂载完毕", this.isLogin);
        if(!this.isLogin){
            this.$router.push({path:"/login"})
        }
    }
}
</script>

<style lang="scss" scoped>
.home {
    width: 100%;
    height: 100%;
}

.layout-container-demo .el-header {
    position: relative;
    background-color: var(--el-color-primary-light-7);
    color: var(--el-text-color-primary);
}

.layout-container-demo .el-aside {
    color: var(--el-text-color-primary);
    background: var(--el-color-primary-light-8);
}

.layout-container-demo .el-menu {
    border-right: none;
}

.layout-container-demo .el-main {
    padding: 0;
}

.layout-container-demo .toolbar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    right: 20px;
}


</style>